1. Field of the Invention
The present invention generally relates to electronic digital signal processing, specifically audio controllers, and more particularly to an improved audio subsystem for a computer.
2. Description of the Related Art
In the past, personal computers had only a single speaker which provided audio output to the user. The quality of the sound output provided by the speaker was quite poor. Add-on sound boards have been used to enhance the sound quality of personal computers by supporting multiple speakers and stereo sound. The add-on boards were typically used to enhance the sound quality for, e.g., game programs.
More recently, audio coder/decoders (codecs) have been used in personal computers to provide stereo input and output capabilities with sound quality on the order of that provided by compact discs (CDs). The codec's function is to compress and un-compress the audio data, or to convert analog audio signals to a digital format, and digital audio signals to an analog format.
Early codecs converted analog signals at an 8 kHz rate into 8-bit pulse-coded modulation (PCM) for use primarily in telephony. More recently, the efficiency and low cost advantages of codecs have been expanded to convert analog signals at a 48 kHz sampling rate into 16-bit stereo (and even up to 20-bit stereo) for higher quality use beyond that required for telephony. With higher quality audio capability, today's codecs find practical application in consumer stereo equipment including CD players, modems, computers and digital speakers. Conventional codec devices provide, for example, 16-bit audio data over an 8-bit parallel interface between the codec and various computer interconnect architectures, such as the industry standard architecture (ISA), extended industry standard architecture (EISA), or peripheral component interconnect (PCI). These devices also provide analog-to-digital (ADC) and digital-to-analog (DAC) conversions of stereo audio signals, and certain mixing functions.
One exemplary audio codec is the CS4297A multimedia audio codec manufactured by the Crystal Computer Audio Division of Cirrus Logic of Austin, Tex. That codec is compliant with the “Audio Codec '97 Component Specification” (AC '97) which was co-developed by Analog Devices, Inc., Creative Labs, Inc., Intel Corp., National Semiconductor Corp., and Yamaha Corp. The AC '97 specification defines a high-quality, 16-bit audio architecture for the personal computer (PC) that is used in the majority of today's desktop platforms. AC '97 is designed for a two-chip audio architecture, and enables high-quality audio at a price affordable for PC manufacturers. AC '97 has unified the market around a common architecture for next-generation consumer electronics quality PC audio systems mainly based around new interconnect buses like PCI, USB (universal serial bus), and “1394.” The AC '97 options help integrate the components necessary to support next-generation, audio-intensive applications such as DVD, 3-D multiplayer gaming, and interactive music.
In a typical PC audio subsystem, analog audio is input from an analog source, passed through the analog mixer, and then output. FIG. 1 illustrates such an audio subsystem with an AC '97 codec 2 playing analog audio sourced from a CD player 4. An audio controller 6 is also used to manage the AC '97 codec. A problem arises, however, when multiple AC '97 audio codecs are connected to the same audio controller. This situation may occur, for example, when a portable computer (i.e., laptop or notebook computer) is coupled to a computer docking station. The computer has one built-in codec, and the docking station may have a separate codec. As further shown in FIG. 2, only one codec 2 (codec A) provides the analog hardware connections. In this situation, it is not possible to directly transfer the analog audio captured by audio codec 2 to the rest of the audio codecs, such as codec 8 (codec B). FIG. 2 also illustrates the manner in which the audio controller 6 is connected to the computer's host memory 10 via a PCI bus 8.
Unfortunately, many prior art devices provide no hardware connection between the analog source and the inputs of the additional codecs. It would, therefore, be desirable to provide a solution which would allow the analog audio to be output from any codec in the system, notwithstanding the lack of a direct hardware connection. It would be further advantageous if the solution were available for systems with limited resources, such as audio subsystems which have a limited number of direct memory access (DMA) channels.